#pragma once
#include <string>
#include <chrono>
#include<mysql/mysql.h>
using namespace std;
using namespace std::chrono;
class MySqlConn
{
public:
    // 初始化数据库的连接
    MySqlConn();
    // 释放数据库的连接
    ~MySqlConn();
    // 连接数据库
    bool connent(string user, string password, string dbname, string ip, unsigned short port = 8888);
    // 更新数据库
    bool update(string sql);
    // 查询数据库
    bool query(string sql);
    // 遍历查询到的结果集
    bool next();
    // 得到结果集的字段值
    string value(int index);

    // 实务操作
    bool transaction();
    bool commit();
    bool rollback();

    // 刷新起始的空闲时间点
    void refreshAliveTime();
    // 计算连接存活总时间
    long long getAlieveTime();

private:

void freeResult();
    MYSQL *m_conn;
    MYSQL_RES* m_result = nullptr;
    MYSQL_ROW m_row =nullptr;

    steady_clock::time_point m_alivetime;
};